// 引入 vue
import Vue from 'vue';
// 引入 vuex
import Vuex from 'vuex';

// 应用 vuex
Vue.use(Vuex);

// 1. 自动导入所有子模块
const moduleFiles = require.context(
    // 扫描store目录
    './',
    // 遍历子文件夹
    true,
    // 精确匹配五个模块
    /^\.\/(exam|paper|question|user|aiPanel|ai)\/index\.js$/
)

// 2. 动态加载模块
const modules = moduleFiles.keys().reduce((modules, modulePath) => {
  // 2.1 提取模块名（如 './exam/index.js' → 'exam'）
  const moduleName = modulePath.split('/')[1]

  modules[moduleName] = {
    // 启用命名空间
    namespaced: true,
    ...moduleFiles(modulePath).default
  }

  return modules
}, {})

// 3. 创建Store实例
export default new Vuex.Store({
  modules,
})

